<?php


namespace app\api\validate;


class SubjectAnalogParameter extends BaseValidate
{
    protected $rule=[
        'course'=>'require|checkCourse',
        'car_status'=>'require|checkCarStatus',
        'record'=>'require|number',
        'time'=>'require|checkTime',
        'error'=>'checkData'
    ];

    protected $message =[
        'course'=>'科目必须为1，4，5其中一个整数',
        'car_status'=>'车型必须为1，2，3中的一个整数',
        'record'=>'成绩必须为0到100间的整数',
        'time'=>'考试用时必须小于等于45分钟',
        'error'=>'提交错题格式不正确，必须为数组且每个元素必须为正整数'
    ];

    /**
     * 检查科目
     * @param $value
     * @return bool
     */
    public function checkCourse($value)
    {
        if ($value == 1 || $value == 4 || $value == 5){
            return true;
        }
        return false;
    }

    /**
     * 检查车型
     * @param $value
     * @return bool
     */
    public function checkCarStatus($value)
    {
        if ($value == 1 || $value == 2 || $value == 3){
            return true;
        }
        return false;
    }

    /**
     *
     * 检查分数
     * @param $value
     * @return bool
     */
    public function checkRecord($value){
        if ($value>= 0 && $value <=100){
            return true;
        }
        return false;
    }

    /**
     * 检查考试用时
     */
    public function checkTime($value){
        if ($value >= 0 && $value<=(60*45)){
            return true;
        }
        return false;
    }

    /**
     * 检查错题
     * @param $value
     * @return bool
     */
    public function checkData($value){
        if (!is_array($value)){
            return false;
        }
        if (count($value)>0){
            foreach ($value as $item){
                if (is_numeric($item) && is_int($item+0) && ($item + 0)>0 ){
                }else{
                    return false;
                }
            }
        }
        return true;
    }

}